using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Sys;
using net_work.Data.Entity.Sys;
using net_work.Data.VO.Sys;

namespace net_work.IService.Sys;

public interface IStudentService
{
    /// <summary>
    /// 分页查询学生
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<StudentResult>> GetStudentsPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据学生ID查询学生信息
    /// </summary>
    /// <param name="studentId">学生ID</param>
    /// <returns>学生信息</returns>
    Task<Student?> SelectByIdAsync(long studentId);

    /// <summary>
    /// 插入学生
    /// </summary>
    /// <param name="studentAddRequest">新增学生实体</param>
    /// <returns>学生ID</returns>
    Task<long> InsertStudent(StudentAddRequest studentAddRequest);

    /// <summary>
    /// 更新学生信息
    /// </summary>
    /// <param name="studentUpdateRequest">更新学生信息</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateStudent(StudentUpdateRequest studentUpdateRequest);

    /// <summary>
    /// 删除学生
    /// </summary>
    /// <param name="ids">学生ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteStudentByIds(List<long> ids);
}